/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Function : dump()
 * Arguments: The data - array,hash(associative array),object
 *    The level - OPTIONAL
 * Returns  : The textual representation of the array.
 * This function was inspired by the print_r function of PHP.
 * This will accept some data as the argument and return a
 * text that will be a more readable version of the
 * array/hash/object that is given.
 * Docs: http://www.openjs.com/scripts/others/dump_function_php_print_r.php
 */
function dump(arr, level) {
    var dumped_text = "";
    if (!level)
        level = 0;

    //The padding given at the beginning of the line.
    var level_padding = "";
    for (var j = 0; j < level + 1; j++)
        level_padding += "    ";

    if (typeof(arr) === 'object') { //Array/Hashes/Objects
        dumped_text += dumped_text + typeof(arr) + "\n";
        for (var item in arr) {
            var value = arr[item];

            if (typeof(value) === 'object') { //If it is an array,
                dumped_text += level_padding + "'" + item + "' ...\n";
                dumped_text += dump(value, level + 1);
            } else {
                dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
            }
        }
    } else { //Stings/Chars/Numbers etc.
        dumped_text = "===>" + arr + "<===(" + typeof(arr) + ")";
    }
    return dumped_text;
}
//
function ExtractQueryString(x) {
//
    var oResult = {};
    var aQueryString = (x).split("&");
    for (var i = 0; i < aQueryString.length; i++) {
        var aTemp = aQueryString[i].split("=");
        if (aTemp[1].length > 0) {
            oResult[aTemp[0]] = unescape(aTemp[1]);
        }
    }
    return oResult;
}
//
function validate(Id, Text, Opts) {
//
    var x = document.getElementById(Id).value; //get the value that was enetered in the field referenced by Id
    var params = {}; //initialise an array object
    params = ExtractQueryString(Opts); //put the query string (in Opts) into the array
    var errMess = "";
    for (var key in params) { //loop round each key/value pair and do the validation
        var val = params[key];
        if (val === "Y") { //if "Y" then do the validation
            switch (key) { //the type of validation to do
                case "mand":
                    if (x === "") {
                        errMess = Text + " is mandatory.";
                    }
                    break
                case "num":
                    if ( isNaN(x)) {
                        errMess = Text + " must be a number. ";
                    }
                    break
                default:
                    // do nothing
            }
        }
    }
    if (errMess !== "") {
        alert(errMess);
        window.setTimeout(function() {
            document.getElementById(Id).focus();
        }, 0);
        return false;
    } else {
        return true;
    }
}